#include "emplacements.h"

Emplacements::Emplacements(int numero)
{
    m_numero = numero;
    m_zone = -1;
    m_couleurp = -1;
    m_numjoueur = -1;
}

Emplacements::Emplacements()
{
    m_numero = -1;
    m_zone = -1;
    m_couleurp = -1;
    m_numjoueur = -1;
}

Emplacements::~Emplacements()
{
}

int Emplacements::isVoisin(int voisin)
{
    for(int i = 0; i < 6; i++)
    {
        if(m_voisins[i]->m_numero == voisin) return i;
    }
    return -1;
}

int Emplacements::isVoisin(Emplacements *voisin)
{
    for(int i = 0; i < 6; i++)
    {
        if(m_voisins[i] == voisin) return i;
    }
    return -1;
}

bool Emplacements::isPiece()
{
    return (m_numjoueur != -1);
}

void Emplacements::setZoneAndPlayer(int nbjoueurs, int mode, QSet<int> *set[])
{
    /* à gerer : les modes */

    //Association de la zone et du numero de joueur a l'emplacement
    //en fonction du nombre de joueurs, du mode et du set associé (pour l'instant, seulement mode dix present)
    if(set[NORD]->contains(m_numero))
    {
        m_zone = NORD;
        if(nbjoueurs == 2)
        {
            m_numjoueur = 1;
            m_couleurp = BLEU;
        }
        else if(nbjoueurs == 6)
        {
            m_numjoueur = 3;
            m_couleurp = BLEU;
        }
    }
    else if(set[NORDEST]->contains(m_numero))
    {
        m_zone = NORDEST;
        if(nbjoueurs == 3 || nbjoueurs == 4)
        {
            m_numjoueur = 2;
            m_couleurp = MARRON;
        }
        else if(nbjoueurs == 6)
        {
            m_numjoueur = 4;
            m_couleurp = MARRON;
        }
    }
    else if(set[SUDEST]->contains(m_numero))
    {
        m_zone = SUDEST;
        if(nbjoueurs == 4)
        {
            m_numjoueur = 3;
            m_couleurp = VERT;
        }
        else if(nbjoueurs == 6)
        {
            m_numjoueur = 5;
            m_couleurp = VERT;
        }
    }
    else if(set[SUD]->contains(m_numero))
    {
        m_zone = SUD;

        if(nbjoueurs != 4)
        {
            m_numjoueur = 0;
            m_couleurp = ROUGE;
        }
    }
    else if(set[SUDOUEST]->contains(m_numero))
    {
        m_zone = SUDOUEST;
        if(nbjoueurs == 4)
        {
            m_numjoueur = 0;
            m_couleurp = NOIR;
        }
        else if(nbjoueurs == 6)
        {
            m_numjoueur = 1;
            m_couleurp = NOIR;
        }
    }
    else if(set[NORDOUEST]->contains(m_numero))
    {
        m_zone = NORDOUEST;
        if(nbjoueurs == 3 || nbjoueurs == 4)
        {
            m_numjoueur = 1;
            m_couleurp = JAUNE;
        }
        else if(nbjoueurs == 6)
        {
            m_numjoueur = 2;
            m_couleurp = JAUNE;
        }
    }
    else
        m_zone = HEXAGONE;

    /* a faire : gerer les modes */

}
